package day05

import java.lang.Exception

fun main() {

//    var number:Int? = 2
    var number:Int? = null

//    number = number!!.plus(1)
//    println(number)

    try {

        //首先检查是否为异常
        checkException(number)
        number = number!!.plus(1)

    }catch (e: Exception){
        //处理异常
        println(e)
    }

    println(number)





}

//抛出异常
fun checkException(number:Int?){
//    number?:throw UnskilledException()

//    TODO:先决条件函数： 便利函数，使用内置函数，可以抛出带自定义信息的异常，这些便利函数叫做先决条件函数，你可以用它定义
//    TODO:先决条件，条件必须满足，目标代码才能执行。
//    checkNotNull(number,{"something is not good."})
    checkNotNull(number) { "something is not good." }
}


//自定义异常
class UnskilledException : IllegalArgumentException("操作不当")